mod segment02;
mod segment03;
mod segment04;
mod segment01;
mod segment05;
mod segment06;
mod segment07;
mod segment08;
mod segment09;

pub fn practice() {
    segment01::practice();
    println!("");
    segment02::practice();
    println!("");
    segment03::practice();
    println!("");
    segment04::practice();
    println!("");
    segment05::practice();
    println!("");
    segment06::practice();
    println!("");
    segment07::practice();
    println!("");
    segment08::practice();
    println!("");
    segment09::practice();

    println!("");
    let i = 3; // Lifetime for `i` starts. ────────────────┐
    //                                                         │
    { //                                                       │
        let borrow1 = &i; // `borrow1` lifetime starts.──┐│
        //                                                    ││
        println!("borrow1: {}", borrow1); //                  ││
    } // `borrow1 ends. ----──────────────────────────────────┘│
    //                                                         │
    //                                                         │
    { //                                                       │
        let borrow2 = &i; // `borrow2` lifetime starts.──┐│
        //                                                    ││
        println!("borrow2: {}", borrow2); //                  ││
    } // `borrow2` ends. ----─────────────────────────────────┘│
    //                                                         │
}   // Lifetime ends. ────────────----─────────────────────────┘
